RAIS  3.2
C:/Projekte/RAIS/Specific Masks/EditHelp.aspx.cs
Go to the documentation of this file.
00001 
00028 using System;
00029 using System.Collections;
00030 using System.Configuration;
00031 using System.Data;
00032 using System.Linq;
00033 using System.Web;
00034 using System.Web.Security;
00035 using System.Web.UI;
00036 using System.Web.UI.HtmlControls;
00037 using System.Web.UI.WebControls;
00038 using System.Web.UI.WebControls.WebParts;
00039 using System.Xml.Linq;
00040 using System.Globalization;
00041 
00042 using RAIS.ApplicationLogicLayer;
00043 using RAIS.Common.Localization;
00044 using RAIS.Common.DynamicMaskManagement;
00045 using RAIS.Common.TableManagement;
00046 using RAIS.Common.UserManagement;
00047 using RAIS.UI.Common;
00048 
00049 using Queries = System.Collections.Generic.Dictionary<string, RAIS.Common.TableManagement.Query>;
00050 using QueryParameters = System.Collections.Generic.Dictionary<string, RAIS.Common.TableManagement.QueryParameter>;
00051 using QueryParameterTypes = System.Collections.Generic.Dictionary<string, RAIS.Common.TableManagement.QueryParameter.QueryParameterTypeData>;
00052 using Tables = System.Collections.Generic.Dictionary<string, RAIS.Common.TableManagement.Table>;
00053 using CustomizationTypes = System.Collections.Generic.Dictionary<string, RAIS.Common.TableManagement.Query.CustomizationType>;
00054 using FunctionRoleCategories = System.Collections.Generic.Dictionary<string, RAIS.Common.UserManagement.FunctionRole.Category>;
00055 using FunctionRoleSubcategories = System.Collections.Generic.Dictionary<string, RAIS.Common.UserManagement.FunctionRole.Subcategory>;
00056 using Masks = System.Collections.Generic.Dictionary<string, RAIS.Common.UserManagement.Mask>;
00057 using DynamicMasks = System.Collections.Generic.Dictionary<string, RAIS.Common.DynamicMaskManagement.DynamicMask>;
00058 using ConsistencyChecks = System.Collections.Generic.Dictionary<string, RAIS.Common.DynamicMaskManagement.ConsistencyCheck>;
00059 using RecordTypes = System.Collections.Generic.Dictionary<string, RAIS.Common.DynamicMaskManagement.ConsistencyCheck.RecordTypeData>;
00060 using Fields = System.Collections.Generic.Dictionary<string, RAIS.Common.TableManagement.Field>;
00061 using Cultures = System.Collections.Generic.Dictionary<string, RAIS.Common.Localization.Culture>;
00062 namespace RAIS.UI.SpecificMasks
00063 {
00067     public partial class EditHelp : System.Web.UI.Page
00068     {
00069         //*********************************************************************
00070         #region Enums
00071 
00074         enum EditHelp_PageMode
00075         {
00076             view,
00077             add,
00078             edit
00079         };
00080         #endregion Enums
00081         //*********************************************************************
00082         #region Properties
00083 
00086         bool EditMode
00087         {
00088             get
00089             {
00090                 if (this.Session[RAIS.UI.Common.Constants.TRANSLATIONS_EDIT_MODE_TAG] != null)
00091                     return (bool)this.Session[RAIS.UI.Common.Constants.TRANSLATIONS_EDIT_MODE_TAG];
00092                 else
00093                     return false;
00094             }
00095             set
00096             {
00097                 this.Session[RAIS.UI.Common.Constants.TRANSLATIONS_EDIT_MODE_TAG] = value;
00098                 this.EnableDisableControls();
00099             }
00100         }
00104         protected UserData CurrentUser
00105         {
00106             get { return (UserData)this.Session[UI.Common.Constants.CURRENT_USER_TAG]; }
00107         }
00111         private FunctionRole.Category SelectedCategory
00112         {
00113             get
00114             {
00115                 //FunctionRoleCategories categories = RAIS.ApplicationLogicLayer.UserManagement.FunctionalRoleCategories;
00116                 FunctionRoleCategories categories = RAIS.ApplicationLogicLayer.UserManagement.FunctionalRoleCategories;
00117                 if (categories != null && categories.ContainsKey(this.DDLcategory.SelectedValue))
00118                 {
00119                     return categories[this.DDLcategory.SelectedValue];
00120                 }
00121                 else
00122                     return null;
00123             }
00124         }
00128         private FunctionRole.Subcategory SelectedSubcategory
00129         {
00130             get
00131             {
00132                 if (this.SelectedCategory != null)
00133                 {
00134                     //FunctionRoleSubcategories subcategories = RAIS.ApplicationLogicLayer.UserManagement.GetFunctionalRoleSubcategories(this.SelectedCategory, false, false);
00135                     FunctionRoleSubcategories subcategories = UI.Common.TableManagement.GetFunctionRoleSubcategoriesByCategory(this, this.SelectedCategory, false, false, false);
00136                     if (subcategories != null && subcategories.ContainsKey(this.DDLsubcategory.SelectedValue))
00137                         return subcategories[this.DDLsubcategory.SelectedValue];
00138                     else
00139                         return null;
00140                 }
00141                 else
00142                     return null;
00143             }
00144         }
00148         private Mask SelectedMask
00149         {
00150             get
00151             {
00152                 if (this.SelectedCategory != null && this.SelectedSubcategory != null)
00153                 {
00154                     Masks masks = UI.Common.TableManagement.GetMasksByCategoryAndSubcategoryWithHidden(this.SelectedCategory, this.SelectedSubcategory);
00155                     if (masks != null && masks.ContainsKey(this.DDLmask.SelectedValue))
00156                         return masks[this.DDLmask.SelectedValue];
00157                     else
00158                         return null;
00159                 }
00160                 else
00161                     return null;
00162             }
00163         }
00167         private DynamicMask SelectedDynamicMask
00168         {
00169             get
00170             {
00171                 if (this.SelectedMask != null)
00172                 {
00173                     //DynamicMasks dynamicMasks = RAIS.ApplicationLogicLayer.DynamicMaskManagement.GetDynamicMasksByMask(this.SelectedMask);
00174                     DynamicMasks dynamicMasks = UI.Common.TableManagement.GetDynamicMasksByMask(this, this.SelectedMask, false);
00175                     if (dynamicMasks != null && dynamicMasks.ContainsKey(this.DDLdynamicMask.SelectedValue))
00176                         return dynamicMasks[this.DDLdynamicMask.SelectedValue];
00177                     else
00178                         return null;
00179                 }
00180                 else
00181                     return null;
00182             }
00183         }
00187         private Culture SelectedTargetCulture
00188         {
00189             get
00190             {
00191                 if (this.Session[RAIS.UI.Common.Constants.SELECTED_TARGET_CULTURE] == null)
00192                     return RAIS.ApplicationLogicLayer.Localisation.SupportedLanguages[RAIS.Common.Constants.DEFAULT_LANGUAGE];
00193                 return (Culture)this.Session[RAIS.UI.Common.Constants.SELECTED_TARGET_CULTURE];
00194 
00195                 /*Cultures cultures = RAIS.ApplicationLogicLayer.Localisation.SupportedLanguages;
00196                 if (this.DDLdestinationlanguage.Items.Count > 0 && cultures.ContainsKey(this.DDLdestinationlanguage.SelectedItem.Text))
00197                     return cultures[this.DDLdestinationlanguage.SelectedItem.Text];
00198                 else
00199                     return null;*/
00200             }
00201         }
00202         #endregion
00203         //*********************************************************************
00204         #region Event handlers
00205         protected void Page_PreLoad(object sender, EventArgs e)
00206         {
00207             RAIS.UI.Common.PageManagement.TrimTextBoxValues(this);
00208         }
00215         protected void Page_Load(object sender, EventArgs e)
00216         {
00217             this.Response.Cache.SetNoStore();
00218             if (this.CurrentUser == null)
00219                 UI.Common.AccessManagement.SignOut(this);
00220             this.LBLresult.Text = string.Empty;
00221             
00222             if (!this.IsPostBack)
00223             {
00224                 this.LBLadmin.ForeColor = RAIS.UI.Common.Constants.COLOR_OF_MENU_BAR_TEXT_HIGHLIGHT;
00225                 LBLdestlanguage.Text = string.Format(LBLdestlanguage.Text, SelectedTargetCulture.EnglishName);
00226                 this.LBLusernameNoTranslation.Text = this.CurrentUser.Name;
00227                 UI.Common.Localisation.InitializeLanguagesSelection(this.DDLdestinationlanguage.Items);
00228                 foreach (string category in RAIS.ApplicationLogicLayer.UserManagement.FunctionalRoleCategories.Keys)
00229                     if (category!="All Main menus")
00230                         this.DDLcategory.Items.Add(new ListItem(category));
00231                 OnSetCategoryValue();
00232                 UI.Common.PageManagement.InitializePage(this, this.TreeView1);
00233 //                              this.LBTNmessagebox.Visible = !(this.CurrentUser.FunctionalRole.Type == FunctionRole.FunctionRoleType.Guest);
00234                                 EditMode = false;
00235             }
00236             if (Request.Form["__EVENTTARGET"] == UI.Common.Constants.TREEVIEW_ID)
00237                 UI.Common.UserManagement.ProcessTreeViewOnRedirect(this.TreeView1);
00238             PageManagement.InitHelpMainMenu(LBTNdefault);
00239         }
00246         protected void DDLcategory_SelectedIndexChanged(object sender, EventArgs e)
00247         {
00248             this.OnSetCategoryValue();
00249         }
00256         protected void DDLsubcategory_SelectedIndexChanged(object sender, EventArgs e)
00257         {
00258             this.OnSetSubcategoryValue();
00259         }
00266         protected void DDLmask_SelectedIndexChanged(object sender, EventArgs e)
00267         {
00268             this.OnSetMaskValue();
00269         }
00276         protected void DDLdynamicMask_SelectedIndexChanged(object sender, EventArgs e)
00277         {
00278             this.OnSetDinamickMaskValue();
00279         }
00286         protected void DDLdestinationlanguage_SelectedIndexChanged(object sender, EventArgs e)
00287         {
00288             //OnSetLanguage();
00289         }
00296         protected void BTNdiscard_Click(object sender, EventArgs e)
00297         {
00298             OnSetDinamickMaskValue();
00299             EditMode = false;
00300             //this.OnSetDynamicMaskValue();
00301         }
00308         protected void BTNapply_Click(object sender, EventArgs e)
00309         {
00310             EditMode = false;
00311 
00312             FunctionRole.Category category = SelectedCategory;
00313             FunctionRole.Subcategory subcategory = SelectedSubcategory;
00314             Mask mask = SelectedMask;
00315 
00316             // bug #731 fix. 
00317             // this fix should work only for case when 'Message box' category are selected
00318             if (subcategory == null && mask == null)
00319             {
00320                 // get administration category
00321                 FunctionRoleCategories categories =
00322                     RAIS.ApplicationLogicLayer.UserManagement.FunctionalRoleCategories;
00323                 category =
00324                     categories[(string)Page.Session[UI.Common.Constants.SELECTED_CATEGORY_TAG]];
00325 
00326                 FunctionRoleSubcategories subcategories =
00327                     RAIS.ApplicationLogicLayer.UserManagement.GetFunctionalRoleSubcategories(category, false, false, false);
00328                 subcategory = subcategories["User management"];
00329 
00330                 Masks masks =
00331                     UI.Common.TableManagement.GetMasksByCategoryAndSubcategoryWithHidden(category, subcategory);
00332                 foreach (var dictionary in masks)
00333                 {
00334                     if (dictionary.Key == DDLcategory.SelectedValue)
00335                     {
00336                         mask = dictionary.Value;
00337                         break;
00338                     }
00339                 }
00340             }
00341 
00342 
00343             ApplicationLogicLayer.Help.SaveHelp(category,
00344                 subcategory,
00345                 mask, 
00346                 SelectedDynamicMask, 
00347                 SelectedTargetCulture, 
00348                 TXTdestinationlanguage.Text);
00349         }
00356         protected void BTNedit_Click(object sender, EventArgs e)
00357         {
00358             TXTdestinationlanguage.Focus();
00359             EditMode = true;
00360         }
00367         protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
00368         {
00369             //UI.Common.UserManagement.ProcessTreeViewOnRedirect(this.TreeView1);
00370         }
00377         protected void LBTNlogout_Click(object sender, EventArgs e)
00378         {
00379             UI.Common.AccessManagement.SignOut(this);
00380         }
00381         #endregion
00382         //*********************************************************************
00383         #region Private helper methods
00384 
00387         private void OnSetCategoryValue()
00388         {
00389             UI.Common.TableManagement.InitializeSubcategoryListByCategory(
00390                   this.DDLsubcategory
00391                 , this.SelectedCategory
00392                 , true
00393                 , true);
00394             this.OnSetSubcategoryValue();
00395 
00396             if (DDLsubcategory.Items.Count > 0)
00397                 DDLsubcategory.Enabled = true;
00398             else
00399                 DDLsubcategory.Enabled = false;
00400 
00401             if (DDLmask.Items.Count > 0)
00402                 DDLmask.Enabled = true;
00403             else
00404                 DDLmask.Enabled = false;
00405         }
00409         private void OnSetSubcategoryValue()
00410         {
00411             this.DDLmask.Items.Clear();
00412             Masks supportedMasks = UI.Common.TableManagement.GetMasksByCategoryAndSubcategoryWithHidden(this.SelectedCategory, this.SelectedSubcategory);
00413             
00414             foreach(string maskName in supportedMasks.Keys)
00415                 this.DDLmask.Items.Add(maskName);
00416             this.OnSetMaskValue();
00417         }
00421         private void OnSetMaskValue()
00422         {
00423             DynamicMasks dynamicMasks = UI.Common.TableManagement.GetDynamicMasksByMask(this, this.SelectedMask, true);
00424             DDLdynamicMask.Items.Clear();
00425             foreach (string dynamicMask in dynamicMasks.Keys)
00426                 this.DDLdynamicMask.Items.Add(new ListItem(dynamicMask));
00427 
00428             LBLdynamicMask.Visible = (DDLdynamicMask.Items.Count != 0);
00429             DDLdynamicMask.Visible = (DDLdynamicMask.Items.Count != 0);
00430             OnSetDinamickMaskValue();
00431                         this.EnableDisableControls();
00432                 }
00436         private void OnSetDinamickMaskValue()
00437         {
00438             FunctionRole.Category category = SelectedCategory;
00439             FunctionRole.Subcategory subcategory = SelectedSubcategory;
00440             Mask mask = SelectedMask;
00441 
00442             if(subcategory == null && mask == null)
00443             {
00444                 // get administration category
00445                 FunctionRoleCategories categories = 
00446                     RAIS.ApplicationLogicLayer.UserManagement.FunctionalRoleCategories;
00447                 category = 
00448                     categories[(string)Page.Session[UI.Common.Constants.SELECTED_CATEGORY_TAG]];
00449 
00450                 FunctionRoleSubcategories subcategories =
00451                     RAIS.ApplicationLogicLayer.UserManagement.GetFunctionalRoleSubcategories(category, false, false, false);
00452                 subcategory = subcategories["User management"];
00453 
00454                 Masks masks =
00455                     UI.Common.TableManagement.GetMasksByCategoryAndSubcategoryWithHidden(category, subcategory);
00456                 foreach (var dictionary in masks)
00457                 {
00458                     if (dictionary.Key == DDLcategory.SelectedValue)
00459                     {
00460                         mask = dictionary.Value;
00461                         break;
00462                     }
00463                 }
00464             }
00465 
00466             Cultures cultures = RAIS.ApplicationLogicLayer.Localisation.SupportedLanguages;
00467             PNLsourselanguage.InnerHtml = ApplicationLogicLayer.Help.GetHelp(category, subcategory, mask, SelectedDynamicMask, cultures[RAIS.Common.Constants.DEFAULT_LANGUAGE]).Replace("\r\n", "<br/>");
00468             PNLsourselanguage.Style[HtmlTextWriterStyle.Overflow] = "scroll";
00469             TXTdestinationlanguage.Text = ApplicationLogicLayer.Help.GetHelp(category, subcategory, mask, SelectedDynamicMask, SelectedTargetCulture);
00470             //OnSetLanguage();
00471         }
00472         /*private void OnSetLanguage()
00473         {
00474             TXTdestinationlanguage.Text = Help.GetHelp(SelectedCategory, SelectedSubcategory, SelectedMask, SelectedDynamicMask, SelectedTargetCulture);
00475         }*/
00479         private void EnableDisableControls()
00480         {
00481             if (SelectedTargetCulture.EnglishName == RAIS.Common.Constants.DEFAULT_LANGUAGE)
00482             {
00483                 LBLsourselanguage.Visible = false;
00484                 PNLsourselanguage.Visible = false;
00485             }
00486             DDLcategory.Enabled = !EditMode;
00487             DDLsubcategory.Enabled = !EditMode;
00488             DDLmask.Enabled = !EditMode;
00489             DDLdynamicMask.Enabled = !EditMode;
00490 
00491             TXTdestinationlanguage.Enabled = EditMode;
00492 
00493             BTNdiscard.Enabled = EditMode;
00494             BTNapply.Enabled = EditMode;
00495 
00496             if(DDLsubcategory.SelectedIndex == -1 && DDLmask.SelectedIndex == -1)
00497             {
00498                 BTNedit.Enabled = !EditMode;
00499             }
00500             else
00501             {
00502                 BTNedit.Enabled = !EditMode && this.SelectedMask != null;
00503             }
00504             
00505 
00506         }
00507         #endregion
00508     }
00509 }